package com.gohome.gohomechat.ui.activity;

import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;


import com.gohome.gohomechat.GoHomeModel;
import com.gohome.gohomechat.R;
import com.gohome.gohomechat.utils.ImageUtil;
import com.gohome.gohomechat.utils.ToActivityUtil;
import com.gohome.gohomechat.view.ClipImageLayout;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * http://blog.csdn.net/lmj623565791/article/details/39761281
 *
 * @author zhy
 */
public class TailoringActivity extends BaseActivity implements View.OnClickListener {
    private ClipImageLayout mClipImageLayout;
    private String filepath;
    private TextView tailoring_title_editor;


    @Override
    protected int getLayout() {
        return R.layout.activity_tailoring;
    }

    @Override
    protected void initPresenter() {

    }

    @Override
    protected void initView() {
        tailoring_title_editor = findView(R.id.tailoring_title_editor);
        mClipImageLayout = findView(R.id.id_clipImageLayout);
        this.filepath = getIntent().getExtras().getString("filepath");
        if (filepath != null)
            mClipImageLayout.showImagePath(filepath);

    }

    @Override
    protected void initData() {
        tailoring_title_editor.setOnClickListener(this);
    }


    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.tailoring_title_editor:
                Bitmap bitmap = mClipImageLayout.clip();

                ImageUtil.compressImageByPixel(bitmap, "header_ii");
                // compressImageByPixel(filepath);
                ToActivityUtil.startToActivity(this, EditorDataActivity.class);
                finish();
                break;
        }
    }

//    /**
//     * 多线程压缩图片的质量
//     *
//     * @param bitmap  内存中的图片
//     * @param imgPath 图片的保存路径
//     * @author JPH
//     * @date 2014-12-5下午11:30:43
//     */
//    public void compressImageByQuality(final Bitmap bitmap, String imgPath) {
////        new Thread(new Runnable() {//开启多线程进行压缩处理
////            @Override
////            public void run() {
////                // TODO Auto-generated method stub
//        ByteArrayOutputStream baos = new ByteArrayOutputStream();
//        int options = 100;
//        bitmap.compress(Bitmap.CompressFormat.JPEG, options, baos);//质量压缩方法，把压缩后的数据存放到baos中 (100表示不压缩，0表示压缩到最小)
//        while (baos.toByteArray().length / 1024 > 100) {//循环判断如果压缩后图片是否大于100kb,大于继续压缩
//            baos.reset();//重置baos即让下一次的写入覆盖之前的内容
//            options -= 10;//图片质量每次减少10
//            if (options < 0) options = 0;//如果图片质量小于10，则将图片的质量压缩到最小值
//            bitmap.compress(Bitmap.CompressFormat.JPEG, options, baos);//将压缩后的图片保存到baos中
//            if (options == 0) break;//如果图片的质量已降到最低则，不再进行压缩
//        }
//        GoHomeModel.getInstance().setHead(imgPath);
//        GoHomeModel.getInstance().setHeadByte(baos.toByteArray());
//        try {
//            FileOutputStream fos = new FileOutputStream(new File(imgPath));//将压缩后的图片保存的本地上指定路径中
//            fos.write(baos.toByteArray());
//            fos.flush();
//            fos.close();
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//        //   }).start();
//    }
//
//    /**
//     * 按比例缩小图片的像素以达到压缩的目的
//     *
//     * @param imgPath
//     * @author JPH
//     * @date 2014-12-5下午11:30:59
//     */
//    public void compressImageByPixel(String filepath) {
//        BitmapFactory.Options newOpts = new BitmapFactory.Options();
//        newOpts.inJustDecodeBounds = true;//只读边,不读内容
//        Bitmap bitmap = BitmapFactory.decodeFile(filepath, newOpts);
//        newOpts.inJustDecodeBounds = false;
//        int width = newOpts.outWidth;
//        int height = newOpts.outHeight;
//        float maxSize = 1000f;//默认1000px
//        int be = 1;
//        if (width > height && width > maxSize) {//缩放比,用高或者宽其中较大的一个数据进行计算
//            be = (int) (newOpts.outWidth / maxSize);
//        } else if (width < height && height > maxSize) {
//            be = (int) (newOpts.outHeight / maxSize);
//        }
//        be++;
//        newOpts.inSampleSize = be;//设置采样率
//        newOpts.inPreferredConfig = Bitmap.Config.ARGB_8888;//该模式是默认的,可不设
//        newOpts.inPurgeable = true;// 同时设置才会有效
//        newOpts.inInputShareable = true;//。当系统内存不够时候图片自动被回收
//        bitmap = BitmapFactory.decodeFile(filepath, newOpts);
//        compressImageByQuality(bitmap, filepath);//压缩好比例大小后再进行质量压缩
//    }
}
